Проект по А/B-тестированию

Задачи исследования

Провести оценку результатов A/B-теста. Оцените корректность проведения теста и проанализируйте его результаты.

Техническое задание

Название теста: recommender_system_test;
Группы: А (контрольная), B (новая платёжная воронка);
Дата запуска: 2020-12-07;
Дата остановки набора новых пользователей: 2020-12-21;
Дата остановки: 2021-01-04;
Аудитория: 15% новых пользователей из региона EU;
Назначение теста: тестирование изменений, связанных с внедрением улучшенной рекомендательной системы;
Ожидаемое количество участников теста: 6000. Ожидаемый эффект: за 14 дней с момента регистрации в системе пользователи покажут улучшение каждой метрики не менее, чем на 10%: конверсии в просмотр карточек товаров — событие product_page
просмотры корзины — product_cart
покупки — purchase.
Загрузите данные теста, проверьте корректность его проведения и проанализируйте полученные результаты.

Данные

ab_project_marketing_events.csv
final_ab_new_users.csv
final_ab_events.csv
final_ab_participants.csv

/datasets/ab_project_marketing_events.csv — календарь маркетинговых событий на 2020 год;

Структура файла:
name — название маркетингового события;
regions — регионы, в которых будет проводиться рекламная кампания;
start_dt — дата начала кампании;
finish_dt — дата завершения кампании.

/datasets/final_ab_new_users.csv — все пользователи, зарегистрировавшиеся в интернет-магазине в период с 7 по 21 декабря 2020 года;

Структура файла:
user_id — идентификатор пользователя;
first_date — дата регистрации;
region — регион пользователя;
device — устройство, с которого происходила регистрация.

/datasets/final_ab_events.csv — все события новых пользователей в период с 7 декабря 2020 по 4 января 2021 года;

Структура файла:
user_id — идентификатор пользователя;
event_dt — дата и время события;
event_name — тип события;
details — дополнительные данные о событии. Например, для покупок, purchase, в этом поле хранится стоимость покупки в долларах.

/datasets/final_ab_participants.csv — таблица участников тестов.

Структура файла:
user_id — идентификатор пользователя;
ab_test — название теста;
group — группа пользователя.

Цели исследования

Проверить целостность данных и правильность формирования групп в соотвествии с техническим заданием. Проверить пересечение с другими маркетинговыми активностями компании и другими тестами исходных данных тестирования. Исследовать равномерность распределения пользователей по тестовым группам и правильность их формирования.

План работы

1. Загрузка и предобработка
1.1. Открытие и изучение файлов с данными
2. Подготовка данных и проверка условий ТЗ
2.1. Сводная таблица
2.2. Проверка ТЗ - количество пользователей > 6000 и 15% от зарегистрированных в Европе
2.3. Добавляем в сводную таблицу условие ТЗ - 14 дней после регистрации
2.4. Проверка старта, окончания и остановки теста условиям ТЗ
2.6 Пересечение групп, маркетинговых активностей и тестов
2.6.1 Анализ совпадения теста и маркетинговых событий
2.6.2 Анализ на пересечение с тестом interface_eu_test
2.7 Итоговые таблицы фильтрация в соответствии с ТЗ
3. Исследовательский анализ
3.1 Исследовательский анализ количество пользователей по группам А и В
3.2. Исследовательский анализ количество пользователей по девайсам
3.3. Исследовательский анализ, количество событий совершаемых пользователями
3.4. Анализ распределения количества событий на пользователям
3.5. Динамика распределения событий по дням, Анализ
3.6. Воронки событий
3.6.1 Простая продуктовая воронка
3.6.2 Продуктовая воронка с учётом последовательности событий
4. Статистический анализ
4.1 Проверка статистической разницы долей z-критерием
5. Выводы и рекомендации

1. Загрузка и предобработка

1.1. Открытие и изучение файлов с данными

К плану работ

Таблица маркетинговых активностей содержит данные о 10-ти маркетинговых мероприятиях с 25 января 2020 года до 3 января 2021 года.
Только одно маркетинговое мероприятие попадает в исследуемый нами период с 7 по 21 декабря 2020 года - это "Christmas&New Year Promo", оно начинается после набора новых пользователей в группы тестирования, но действует в период проведения теста после набора. Неизвестно как это маркетинговое событие повлияет на метрики исследуемых групп, тем более что однозначной привязки пользователя к событию сделать нельзя (ключ к соединению только страна проведения этого события). Принимал наш воображаемый пользователь участие в рождественском промо или нет - неизвестно, возможно мы увидим это в дальнейшем на графиках.

В таблице final_ab_new_users — все пользователи, зарегистрировавшиеся в интернет-магазине в период с 7 по 21 декабря 2020 года. Даты старта регистрации и данных таблицы совпадают, дата окончания набора новых пользователей в группы по А/В тестированию на 2 дня раньше чем данные этой таблицы. Значит в ней есть лишние пользователи.
Пропусков и дубликатов нет.

В таблице final_ab_events — все события новых пользователей в период с 7 декабря 2020 по 4 января 2021 года. Всего событий 440317, пропуски есть только в столбце details - но для нашего исследования это не критично. Для удобства дальнейшего использования данных заменияем пропуски в столбце details на 0, потому что деталей нет, а данные нам понадобятся для исследования.
Дубликатов нет. Дата последнего события 30 декабря 2020 года.

final_ab_participants — таблица участников тестов содержит данные об участниках 2-х видов тестов: 'recommender_system_test'и 'interface_eu_test'. Всего 18268 записей., пропусков и дубликатов нет.

Выводы:

В таблицах содержатся полные данные всех полей которые на могут понадобиться, дубликатов и пропусков нет (исключение стобец деталей к платежу, он не интересен).
Мы изменили формат дат на datetime64[ns]. В остальном данные готовы к исследованию.

2. Подготовка данных и проверка условий ТЗ

2.1 Сводная таблица

К плану работ

В сводной таблице есть пользователи, которые не участвовали в тестах.

2.2 Проверка ТЗ - количество пользователей > 6000 и 15% от зарегистрированных в Европе

К плану работ

Новых пользователей в Европе зарегистрировалост в rst тест 6351 - больше 6000. Это соответствует ТЗ. В даты регистрации на recommender_system_test (с 7 до 21 января) в него попали ровно 15% от общего числа новых пользователей из EU. Это условие 3 ТЗ выполнено тоже.

2.3 Добавляем в сводную таблицу условие ТЗ - 14 дней после регистрации

К плану работ

создав таблицу с пользователями, которые совершали действия после 14 лайфтайма в таблице есть, их событий после 14 лайфтайма 800. Удалим их в соответствием с ТЗ

В итоговой таблице data_eu_new_rst есть пропуски в данных, связанных с событиями (event_dt, event_date, event_name, details) а в столбце first_dt - первая дата регистрации - данные есть. Это свидетельствует о том, что пользователь неактивный, он не совершал действий. Таких пользователей мы удалили. Также есть пропуски в столбцах 'group' и 'ab_test' - это пользователи, которые регистрировались или совершали действия но не попали в группы теста и сами тесты. Таким образом мы создали итоговую таблицу для теста rst - result_rst.
В ней только пользователи Европы, только зарегистрированные в период с 7 по 21 декабря 2020 года, отброшены события более 14 дней от момента регистрации и удалены пропуски (неактивные пользователи).

Мы создали итоговую таблицу для двух тестов (recommender_system_test и interface_eu_test) в Европе - result.
В ней только пользователи Европы, только зарегистрированные в период с 7 по 21 декабря 2020 года, отброшены события более 14 дней от момента регистрации и удалены пропуски. Эта таблица нам понадобится для проверки пересечения тестов

2.4 Проверка старта, окончания и остановки теста условиям ТЗ

К плану работ

Остановка теста recommender_system_test произошла до указанного в ТЗ 4 января 2021 года (на 5 дней раньше). Все события в исследуемых базах прекращаются 30 декабря 2020 года.
События в тесте recommender_system_test заканчиваются 29 декабря, interface_eu_test - аналогично. Есть полное пересечение 2-х времени проведения этих двух тестов в Европе.
Старт и окончание набора в тест recommender_system_test - соответствует ТЗ.

2.6 Пересечение групп, маркетинговых активностей и тестов

К плану работ

2.6.1 Анализ совпадения теста и маркетинговых событий

К плану работ

Выводы:

во время проведения теста проводились два маркетинговых события. Только одно входило во временной промежуток исследования и действовало на территории Европы. Старт этого события - Christmas&New Year Promo - 25 декабря. Влияние этого события можно будет оценить в исследовательском анализе, когда мы будем строить динамику событий по дням. В любом случае каждый магазин ведет маркетинговую активность весь год, но на мой взгляд время рождественских расродаж выбрано неудачно. Хотя скорее всего Christmas&New Year Promo повлияло на обе группы теста.

2.6.2 Анализ на пересечение с тестом interface_eu_test

К плану работ

Доля пользователей, участвующих в обоих тестах в группе А 34%, а в группе В - 100%. Скорее всего именно это и есть причина почему есть различия в резульатах тестов у групп А и В

Мы видим, что пересечений уникальных пользователей в группах А и В теста recommender_system_test - нет. Но есть пересечение с еще одним тестом interface_eu_test, причем в группе В все пользователи пересекаются, а в группе А их доля 34%.

2.7 Итоговая таблица result_rst для исследования

К плану работ

Выводы:

Мы видим, что до удаления пропущенных данных для проведения recommender_system_test в Европе было зарегистрировано 6351 уникальный пользователь. Значит условие ТЗ о наборе 6000 пользователей было выполнено, однако данные содержали пропуски, поэтому реально мы будем тестировать 3481 уникальный профиль пользователя.
Также мы можем сказать что условие 15% новых пользователей в Европе для проведения нашего теста выполнено - у нас 15%. Последняя дата события в группах нашего теста 30 декабря 2020 года, значит условие что остановка теста 4 января 2021 года - выполнено.
Остается проверить последнее условие - увеличение на 10% метрик.
В нашей таблице появились пропуски в столбцах связанных с событиями. Это пользователи, которые зарегистрировались, но не совершили ни одного события, количество уникальных пассивных пользователей 2870(6351-3481, это почти 11% от общего числа данных от всех событий. В выведенном верхе таблицы - мы видим незаполненность полей связанных с событиями. Заменим названия событий на 0, и посчитаем уникальных пользователей, которые зарегистрировались для участия в тесте, но не совершили ни одного события - таковых 2870.

Выводы по подготовке данных к исследованию

Мы проверили соответствие данных условию Технического Задания (ТЗ). Все условия выполнены - данные собирались в период с 7 о 21 декабря, остановка теста произошла раньше 4 января 2021 года - 30 декабря 2020 года. Перечечений пользователей в группах А и В нет. Дубликатов нет. Количество пользователей в группах разное. Все пользователи совершали события не более 14 дней после регистрации, остальные события были отброшены.
В регионе Европа в данный промежуток времени происходило еще одно тестирование на выбранной группе пользователей - nterface_eu_test. Полное пересечение по времени, количество пользователей группы В задействовано в обоих тестах на 100%, в группе А на 34%.
Кроме того есть пересечение с маркетинговой активностью в европейском регионе - Christmas&New Year Promo - начиная с 25 декабря.
В данных есть пользователи, которые не совершили ни одного действия - 2870 пользователя.

3. Исследовательский анализ

3.1 Исследовательский анализ количество пользователей по группам А и В

К плану работ

Разбивка пользователей по количеству неравномерная в группе А 25,2%б в гуппе В почти 75%. Скорее всего алгоритм разделения пользователей не был настроен оптимально, вполне вероятно что не учитывалась или не могла быть учтена пользовательская активность и пользователей группы В было больше неактивных, а после удаления неактивных пользователей - получился числовой дисбалланс в пользу группы А. Поскольку группа А - контрольная, а В - тестовая, то пользователей которые тестировали улучшенную систему рекомендаций может быть просто мало для адекватной оценки результатов

3.2 Исследовательский анализ распределения пользователей по девайсам

К плану работ

Выводы:

от 44 до 46% пользователей это пользователи устройств Android, от 24 до 26% - персональных компьютеров, 20-21% iPhone и от 8 до 10% компьютероа МАС. При разнице в количестве пользователей в 50% разница в разбивке по устройствам меньше статичтической погрешности. Можно считать разбивку по устройствам равномерной.

3.3. Исследовательский анализ, количество событий совершаемых пользователями

К плану работ

Построив график распределение событий по пользователям, можно сказать что оно является нормальным, поэтому расчет среднего кол-ва событий на пользователя по группам делаю по среднему. Пользователи группы А более активны, в среднем они делают 7 событий. Это больше на два события чем пользовватели группы В

3.4. Анализ распределения количества событий на пользователя

К плану работ

Выводы:

Распределение событий по группам очень схоже и похоже на нормальное. Пользователей совершивших по 4 и 6 действий больше всего в выборках. в группе А пик на 6-ти событиях, в группе В - неявный пик на 4-х. При уменьшении количества корзин и совмещении гистограмм рядом - распределение более схоже. Количество событий в группе на одного пользователя в группе А - 7, В - 5

Распределение отдаленно напоминает нормально. 14 и 21 декабря аномалии событий. 14 декабря резкий рост после небольшого спада, а 21 декабря (день окончания регистрации на тест) - пик событий. Распределение отдаленно напоминает номальное со скосом влево. Возможно в данных есть выбросы, которые повлияли на распределение. После 21-го идет активный спад. Резкого изменения активности после 25-го - начала новогодней активности - не наблюдается. Кроме этого заметно что есть 2 "вершины" распределений на 9 декабря и спад к 14-му и на 20. Есть вероятность что это недельные циклы. Пик 21-го скорее всего связан с недобором в тест.

3.5. Динамика распределения событий по дням, Анализ

К плану работ

Если рассматривать распределение событий по группам в тесте recommender_system_test, то расределение выглядит похожим между группами. Выбросы в максимум у группы А 21 декабря, у группы В - 7, 16 и 21-го. С 22 декабря заметно большее снижение в обоих группах. До 10 декабря группа В имеет количество событий сопоставимое с группой А. Если учесть то что количество пользователей в группе И в 3 раза меньше, то получается что группа В изначально была активнее или просто соотношение пользователей по группам было другое на тот момент.

3.5. Воронки событий

3.5.1 Простая продуктовая воронка

К плану работ

Выводы:

Посторив воронку продаж без последовательности этапов (в современных интернет магазинах реализованы сценарии оплаты как с главной страницы так и со страниц товаров, а также возможно попадание пользователя на страницу товара минуя страницу авторизации) оплата составляет около 30% от кол-ва авторизаций на сайте. Причем в группе А конверсия в покупку почти на 4% больше. Попробую рассмотреть воронку событий с учетом последовательного совершения событий, ведь recommender_system_test - тестирует улучшенную рекомендательную систему и новую воронку продаж.

3.6.2 Продуктовая воронка с учётом последовательности событий

К плану работ

Выводы:

При рассмотрении воронки продаж с традиционной последовательностью этапов - группа В показала лучший результат конверсии в продажу. Однако, только 1 раз была произведена оплата (4,3% от кол-ва просмотра корзины), конверсия достаточно низкая. С другой стороны воронка без учета последовательности событий показывает достаточно высокие результаты, но в группе В конверсия в продажу ниже на те же 4%.

Выводы:

во время проведения теста проводились два маркетинговых события. Только одно входило во временной промежуток исследования и действовало на территории Европы. Старт этого события - Christmas&New Year Promo - 25 декабря, резких скачков на графике распределения событий по дням в это время не было. Можно сделать вывод что событие не повлияло на результаты нашего теста.
Если рассматривать распределение пользователей в группах по устройствам входа, то оно схоже, разница в пределах статистической пограшности. В группе В айфонов больше чем в группе А, а персональных компьютеров меньше.
Поскольку время проведения второго теста в Европе полностью совпадает с recommender_system_test - оценить его ввлияние на графике не представляется возможным. 31% пользователей доходит до события оплаты товаров purchase. Доля пользователей просматривающих корзину покупок меньше, возможно так настроен алгоритм сайта и купить товары можно без просмотра корзины. В группе А конверсия в продажу больше чем в группе В.
В воронке продаж с учетом очередности этапов - конверсия в продажи в группе В выше чем в группа А, однако только один пользователь дошел до оплаты в этой группе, то есть мы получили ничтожный результат за 2 недели теста. Скорее всего пользователи не соблюдают традиционную воронке продаж, потому что с учетом очередности конверсия падает до уровня менее 1%.

4. Статистический анализ

4.1 Проверка статистической разницы долей z-критерием

К плану работ

Н0 - доли конверсии между этапами в группах равны
Н1 - доли конверсии между этапами в группах не равны

мы сравниваем конверсии трех событий - в просмотр карточки товара, в просмотр корзины и в покупку. Это множественное сравнение. Поэтому применим поправку Бонферрони, равную 3

Выводы по статистическому анализу

Ожидаемого увеличения конверсии на 10% в тестовой группе не наблюдается ни в одном из событий. Наоборот мы видим снижение конверсии на 8,5, 2,21 и 3,6% соответственно (действия product_page, product_cart и purchase) Поскольку мы трижды сравниваем события в одной группе тестов, то мы применили поправку на множественность тестов и рзделили alpha = .05 - критический уровень статистической значимости на 3 сравнения. олучилось отвергнуть нулевую гипотезу при сравнении конверсии действия product_page - доли конверсий разные. Остальные действия - отвергнуть нулевую гипотезу не получилось, нет оснований считать доли разными.

5. Выводы и рекомендации

К плану работ

При проверке соответствия проведения теста recommender_system_test условиям Технического задания мы пришли к выводу о выполнении всех пунктов технического задания кроме последнего. Количество пользователей задействованных в тесте 6351, это более необходимых 6000 человек. Количество пользователей, попавших в группы этого теста составляет 15% от общего количества пользователей, зарегистрированных а Европе. Старт и окончание теста соответствует ТЗ: с 7 по 21 декабря 2020 года. Остановка теста произошла раньше на 5 дней. В таблице для сравнения групп пользователей мы оставили события не позднее 14 дней после даты регистрации пользователя. Из зарегистрированных пользователей 2870 оказались неактивны и для чистоты эксперимента нам пришлось их удалить из данных.
Остальные пользователи зарегистрированные и учствующие в тесте разделились между группами А и В в соотношении 3:1. Распределение польователей по количеству событий похоже на нормальное со скосом влево. Больше всего (пики) на значениях 4 и 6. Среднее значение в группе А - 7 событий на человека, в группе В - 5.
Расределение по устройствам входа схожее, но в группе В незначительно больше айфонов и меньше персональных компьютеров. Динамика распределения количества событий в группах А и В - имеет похожее распределение, и недельную цикличность. В обоих группах есть пик на 21 декабря - дата окончания регистрации на тест. Скорее всего в этот день был "добор" пользователей в ущерб качеству. Группа В в первую неделю совершала одинаковое количество событий с пользователями группы А. Во вторую неделю пользователи группы А действовали более активно чем в первую неделю. После 21 декабря количество событий в обоих группах пошло на убыль. Заметного скачка снижения активности 25 декабря из-за рождественской маркетинговой активности магазина в событии Christmas&New Year Promo начавшемся 25 декабря не наблюдаем.
Пересечения пользователей в нашем тесте по группам А и В нет. Есть пересечение с конкурирующим тестом interface_eu_test.

Ключевая метрика нашего теста это конверсия в продажи. Из условия задания А- контрольная группа, В - тестовая. В тестовой группе конверсия меньше на всех этапах. условия увеличения коверсии на 10% достигнуть не удалось. Проведение статистического анализа на равество долей конверсии между двумя группами теста показало разницу долей только на первом этапе воронки продаж product_page. Доли конверсии просмотра корзины и покупки - не получилось отвергнуть нулевую гиротезу о равенстве долей.

Тест можно признать состоявшимся, выдержавшим все условия ТЗ, но не достигнувший одидаемого результат (увеличение конверсии на 10%). В связи с этим считаю, что не стоит внедрять изменения рекомендательной системы проводимые в рамках данного теста - потому что они будут сопряжены с затратами, а ожидаемого результата не принесут. В целом считаю, что выбраны не не лучшие даты проведения тестирования, группы были разделены равномерно, но не поровну, среди пользователей большое число неактивных, которые не совершили ни одного действия.
Вывод: тест надо остановить, результаты признать неудовлетворительными.
Рекомендации: выбирать время тестирования в периоды не пересекающимися с другими маркетинговыми активностями и тестами. Отслеживать пассивность пользователей в группах тестов, Оптимизоровать алгоритм распределения пользователей по группам